package dominio;

import tiempo.Cronometro;
import tiempo.ICronometrado;

public class EstadoMuerto extends FantasmaEstado implements ICronometrado {
	private static final Integer AGRESIVIDAD_INICIAL = 0;
	private Boolean revivir;
	private Cronometro cronometro;
	
	public EstadoMuerto() {
		revivir = false;
		cronometro = new Cronometro(this, Laberinto.DURACION_BASE);
		iniciarCuentaRegresiva(); // En el pacman de verdad, este metodo no se llama aca
	}
	
	public void iniciarCuentaRegresiva() {
		cronometro.start();
	}
	
	@Override
	public void moverFantasma(Fantasma fantasma, IMovible pacman) {
		// Esta bien que no haga nada aca
	}

	@Override
	public void siguienteEstado(Fantasma fantasma) {
		if (revivir) {
			fantasma.setNodoActual(Juego.getInstance().getLaberinto().getNodoInicialFantasmas()); // Segun enunciado 2da iteracion
			fantasma.setEstadoActual(new EstadoCazador(fantasma));
		}
		if (fantasma.getComioPastilla()) {
			fantasma.setComioPastilla(false);
		}
	}

	@Override
	public void colisionar(IMovible fantasma, Pacman pacman) {
		// Esta bien que no haga nada aca
		
	}

	@Override
	public void molestar() {
		// Esta bien que no haga nada aca
		
	}

	@Override
	public Integer getAgresividadInicial() {
		return AGRESIVIDAD_INICIAL;
	}
	
	@Override
	public String toString() {
		return "Muerto";
	}

	@Override
	public void timeOut() {
		revivir = true;
		
		// TODO Borrar siguientes lineas cuando se saque la consola
		System.out.println();
		System.out.println("Estado Muerto finalizado, el fantasma es ahora Cazador");
		System.out.println(">");
	}

}
